home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ivl / src / libpt4.h < prev    next >
Text File  |  2000-06-23  |  2KB  |  75 lines

  1. #if    !defined(LIBPT4_H_HAS_INCLUDED)
  2. #define    LIBPT4_H_HAS_INCLUDED
  3. /*
  4. *    PT4 フォーマット取り扱いライブラリ
  5. *
  6. *    original C:    from Jun. 7,1999    by dummy.x.(with J-SAGA INDUSTRY)
  7. *    asm and ars:    from Jun.13,1999    by dummy.x.(with J-SAGA INDUSTRY)
  8. */
  9. #include    "comtype.h"
  10.  
  11. /* データ構造定義 */
  12. typedef struct {    /* .PT4 画像ファイルデータ構造 */
  13.     long idcode;            /* 認識コード(0 でなくてはならない(らしい)) */
  14.     ushort width;            /* パターン横幅(dot単位) */
  15.     ushort height;            /* パターン縦高(dot単位) */
  16.     ushort pixels[_ZEROARRAY];    /* ピクセルデータ
  17.                     *    実際のデータサイズは
  18.                     *    ((横幅/8(ワード単位で補正))×縦高×4)
  19.                     */
  20. } pt4_struct_t;
  21.  
  22. /* 定数定義 */
  23.     /* read_pt4() (.PT4 ファイル読み込み/確認処理)の返値 */
  24. enum {
  25.     RDPT4_SUCCESS = 0,    /* 無事終了 */
  26.     RDPT4_READ_FAIL,    /* ファイル読み込み失敗 */
  27.     RDPT4_MALLOC_FAIL,    /* メモリ確保失敗 */
  28.     RDPT4_ILL_FORMAT,    /* .PT4 ではない */
  29.     RDPT4_RESULT_KAZ
  30. };
  31.     /* set_gpalet_pt4() の引数 palbits の定数 */
  32.         /* 設定パレットbit番号(各bitの意味) */
  33. enum {
  34.     GPPT4_BIT_NGTV,    /* bit=1:色反転 */
  35.     GPPT4_BIT_MONO,    /* bit=1:白黒 */
  36.     GPPT4_BIT_KAZ
  37. };
  38.         /* 表示パレット種
  39.         *    bit 値の組み合わせによる値
  40.         */
  41. enum {
  42.     GPPT4_NORMAL = 0,    /* 通常色 */
  43.     GPPT4_NEGATIVE,        /* 色反転 */
  44.     GPPT4_MONOTONE,        /* 白黒 */
  45.     GPPT4_NEGAMONO,        /* 色反転&白黒 */
  46.     GPPT4_KAZ
  47. };
  48.  
  49. /* 関数宣言*/
  50.     /* ファイル読み込み関連 */
  51. extern int read_pt4(pt4_struct_t **bufpp, const char *fnamp);
  52. extern int read_pt4_head(pt4_struct_t *rbufp, const char *fnamp);
  53.     /* 表示関連 */
  54. extern void gput_pt4(const pt4_struct_t *datp, ushort tx, ushort ty);
  55. extern void set_gpalet_pt4(char palbits);
  56.  
  57. /* 偽装マクロ */
  58.  
  59. /* .PT4 横幅から横1ラインのデータバイト数を算出する
  60. *    引数:    patw    - パターン横幅
  61. *    返値:    データバイト数
  62. */
  63. #define get_pt4_wbytes(patw)    ((((patw) + 15) / 8) & ~1)
  64.                 /* ((((patw) + 15) / 16) * 2) */
  65.  
  66. /* .PT4 データから、正しいファイルサイズを算出する
  67. *    引数:    hedp    - .PT4 データへのポインタ
  68. *    返値:    正しいと思われるファイルサイズ
  69. */
  70. #define    calc_pt4_file_size(hedp)    \
  71. (sizeof(pt4_struct_t) + ((get_pt4_wbytes((hedp)->width) * (hedp)->height) * 4))
  72.  
  73.  
  74. #endif    /* !defined(LIBPT4_H_HAS_INCLUDED) */
  75.